Passed
Push — dependabot/npm_and_yarn/dev/sa... ( 003e03...a9167e )
by Yonathan
06:21 queued 12s
created

localize.ts ➔ localizeField   A

Complexity

Conditions 1

Size

Total Lines 7
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
export type Locales = "en" | "fr";
2
type LocalizeableModel<T> = Record<Locales, T>;
3
type StringFields<T> = {
4
  [K in keyof T]: T[K] extends string | null ? K : never;
5
}[keyof T];
6
7
export function localizeField<T>(
8
  locale: Locales,
9
  model: LocalizeableModel<T>,
10
  field: StringFields<T>,
11
) {
12
  return model[locale][field];
13
}
14